In computer graphics systems, it is desired to represent two and three dimensional graphical pictures on a two dimensional display. Typically, such a picture is a construct or image that may be stored in memory as a set of polygons. To generate the picture on the display, the polygons are then rendered using processes that are typically computationally intensive. However, a portion of the picture to be represented may fall outside the field of vision provided by a window on the display or by the display itself. In such cases, it may be desirable to clip the picture and the polygons comprising the picture as the picture is being generated, thereby reducing computational requirements and increasing rendering speed.
A polygon is typically specified as a set of vertices P(0), P(1), . . . , P(n-2), P(n-1), where n is the number of vertices in the polygon. Each vertex P(i) is specified by its location V(i) in a suitable coordinate space and a function, referred to herein as a color factor, f(V(i)). A color factor is a function evaluated at each vertex that may be displayed later as a color (including a grayscale) variation (such as a light intensity, a thermal characteristic, a humidity factor, etc.). The color factor may be converted to a color and is useful in modelling (such as simple lighting modelling or more complex weather modelling).
Once the polygons are rendered, typical two dimensional graphics systems allow the user to pick and drag polygons to desired locations. A polygon is picked when the user selects that object, typically by positioning a cursor over the object and pressing a mouse button. The object is dragged by the user moving the cursor, typically by moving the mouse while continuing to press the mouse button. Typically, an object being dragged is shown in outline form during the dragging operation to reduce computational requirements of rendering the object as the object is moved. Once the user has completed dragging the object, the user may then drop the object, typically by releasing the mouse button. Prior art systems then render the polygon in the drop location. If there are any pre-existing objects that are also at the same location, then the dropped object is rendered as being on top of the pre-existing object. If the user desires the pre-existing object to be on top of the dropped object, then the user must pick the pre-existing object and then drop it without dragging the object anywhere. This results in the pre-existing object being placed on top of the just dragged object.